/*
 * Copyright 2015 Yan Zhenjie
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.yanzhenjie.nohttp.sample;

import com.yanzhenjie.nohttp.Logger;
import com.yanzhenjie.nohttp.NoHttp;
import com.yanzhenjie.nohttp.OkHttpNetworkExecutor;
import com.yanzhenjie.nohttp.cache.DiskCacheStore;
import com.yanzhenjie.nohttp.cookie.DBCookieStore;

/**
 * Created in Oct 23, 2015 12:59:13 PM.
 *
 * @author Yan Zhenjie.
 */
public class Application extends android.app.Application
{

	private static Application _instance;

	@Override
	public void onCreate()
	{
		super.onCreate();
		_instance = this;

		Logger.setDebug(BuildConfig.DEBUG);// 开启NoHttp的调试模式, 配置后可看到请求过程、日志和错误信息。
		Logger.setTag("xxx-NoHttpSample");// 设置NoHttp打印Log的tag。

		// 一般情况下你只需要这样初始化：
		//        NoHttp.initialize(this);

		// 如果你需要自定义配置：
		NoHttp.initialize(this, new NoHttp.Config()
				// 设置全局连接超时时间，单位毫秒，默认10s。
				.setConnectTimeout(30 * 1000)
				// 设置全局服务器响应超时时间，单位毫秒，默认10s。
				.setReadTimeout(30 * 1000)
				// 配置缓存，默认保存数据库DBCacheStore，保存到SD卡使用DiskCacheStore。
				/*.setCacheStore(
				        new DBCacheStore(this).setEnable(true) // 如果不使用缓存，设置setEnable(false)禁用。
                )*/
				.setCacheStore(new DiskCacheStore(this.getExternalFilesDir("nohttp").getAbsolutePath()))
				// 配置Cookie，默认保存数据库DBCookieStore，开发者可以自己实现。
				.setCookieStore(
						new DBCookieStore(this).setEnable(true) // 如果不维护cookie，设置false禁用。
				)
				// 配置网络层，默认使用URLConnection，如果想用OkHttp：OkHttpNetworkExecutor。
				.setNetworkExecutor(new OkHttpNetworkExecutor())
		);

		// 如果你需要用OkHttp，请依赖下面的项目，version表示版本号：
		// compile 'com.yanzhenjie.nohttp:okhttp:1.1.1'

		// NoHttp详细使用文档：http://doc.nohttp.net
	}

	public static Application getInstance()
	{
		return _instance;
	}

}
